home *** CD-ROM | disk | FTP | other *** search
- Path: bloom-beacon.mit.edu!hookup!europa.eng.gtefsd.com!emory!news-feed-2.peachnet.edu!concert!bigblue.oit.unc.edu!sunSITE!mdw
- From: geyer@polyhymnia.iwr.uni-heidelberg.de (Helmut Geyer)
- Newsgroups: comp.os.linux.announce,comp.os.linux.help,comp.os.linux.admin,comp.windows.x.i386unix,comp.answers,news.answers
- Subject: Linux XFree86 HOWTO
- Followup-To: poster
- Date: 16 Mar 1994 05:29:20 GMT
- Organization: The University of North Carolina at Chapel Hill
- Lines: 826
- Approved: linux-announce@tc.cornell.edu (Matt Welsh)
- Message-ID: <2m65fg$4pg@bigblue.oit.unc.edu>
- NNTP-Posting-Host: calzone.oit.unc.edu
- Summary: HOWTO on installation of XFree86 for Linux
- Keywords: Linux, XWindows, XFree86
- Originator: mdw@sunSITE
- Xref: bloom-beacon.mit.edu comp.os.linux.announce:1957 comp.os.linux.help:26198 comp.os.linux.admin:5618 comp.windows.x.i386unix:8415 comp.answers:4187 news.answers:16456
-
- Archive-name: linux/howto/XFree86
- Last-modified: 10 February 1994
-
- $Id: XFree86-HOWTO,v 1.6 1994/02/08 00:00:00 geyer Rel geyer$
-
- Comments or suggestions on this HOWTO are very welcome, i.e. if you feel that
- something is missing or something is obsolete or wrong, please let me know.
-
- The Linux XFree86 HOWTO, version 1.6
- ------------------------------------------------------------------------------
- by Helmut Geyer (geyer@kalliope.iwr.uni-heidelberg.de)
- with help from Dirk Hohndel (hohndel@informatik.uni-wuerzburg.de)
- and David E. Wexelblat (dwex@aib.com)
-
- This document describes how to obtain, install and configure XFree86[TM]
- version 2.0 for Linux systems. XFree86 is an enhanced version of the X
- Window System, version 11 release 5, with support for many versions of UN*X
- running on Intel i386/486 platforms, including Linux. It support a great
- amount of video hardware for these systems and includes many bugfixes beyond
- the MIT standard release of X.
-
- This document is intended to help Linux users install and configure XFree86
- v2.0, which was released on 31 October 1993. It is furthermore intended to
- answer some basic questions about X and programs using X.
-
- Please read this file and the referenced documentation files BEFORE
- installing and starting XFree86. IF YOU ARE NOT CAREFUL, YOU MIGHT DAMAGE
- YOUR HARDWARE.
-
- This file comes WITHOUT ANY WARRANTY OF FITNESS. If you damage anything
- following these informations, you are on your own. For a complete
- description of the features and the installation please look at the
- documentation files and manuals that come with XFree86 (residing in
- /usr/X386/lib/X11/etc and its subdirs as well as in /usr/X386/man). The
- most important files will be pointed out to you in this HOWTO. Note that
- this HOWTO gives not complete information on setting up XFree86, but that
- you have to get the documentation files for XFree86 (from the file
- xf86-doc-2.0.tar.gz).
-
- Other man pages from the stock X11R5 distribution can be found in
- xf86-man-2.0.tar.gz. These manfiles come as sources for the nroff program.
- To read them you will need a working man program as well as the groff
- package for formatting them. Note that it is often required to read
- manpages, so you should install the groff package anyway. (I think it is no
- good idea that in many distributions this package is considered optional).
-
- New versions of this document will be posted to comp.os.linux.announce, as
- well as archived on sunsite.unc.edu:/pub/Linux/HOWTO.
-
- Contents:
-
- 0. Introduction - What are X11R5 and XFree86?
- 1. Supported Hardware
- 2. Where do I get XFree86 and what do I need to run it?
- 3. Configuring XFree86
- 4. tinyX - a package for systems with low memory
- 5. X related packages
- 6. Compiling programs that use X
- 7. Programming in X
- 8. Finding Information on X on the net
- Appendix: Some Questions & Answers
- Copying conditions & Trademarks
-
- 0. Introduction - What are X11R5 and XFree86?
-
- X11R5 is a windowing system for UN*X like operating systems. The X
- Windowing System is issued by the MIT Consortium (look at the X(1)
- manpage for more information) and is put under a very liberal copyright,
- that allows any use of source code provided that the original copyright
- notices are included.
- As X is THE standard windowing system for UN*X operating systems, there
- are a lot of applications using it (both free and commercial).
-
- XFree86 is a port of X11R5 that supports several versions of Intel-based
- Unix and Unix-like operating systems. The XFree86 servers are partly
- derived from X386 1.2, which was the X server distributed with X11R5,
- but many of them are newly developed. The accelerated servers that are
- the most important change since XFree86-1.3 are completely new. This
- release consists of many new features and performance improvements as
- well as many bug fixes. The release is available as source patches
- against the MIT X11R5 code, as well as binary distributions for many
- architectures.
-
- Note that while the source and installation trees retain the name 'X386'
- name (for simplicity of maintenance of the source tree), there is no
- connection between XFree86 and the commercial X386 product sold by SGCS.
- The XFree86 Core Team maintains technical contacts with SGCS in an
- effort to keep user-affecting changes to the workings of the products
- from diverging too radically. There is no direct involvement of either
- group in the workings of the other.
-
- You will find more information on the XFree86-2.0 release and the
- XFree86 project in the file README from the documentation tarfile.
-
- 1. Supported Hardware
-
- As this is the most often asked question, this will be the first
- section. Currently XFree86 (Version 2.0) supports the following
- chipsets in the XF86_SVGA server (note that it depends on the chipset
- whether a card is working and not on the vendor, with Diamond notably
- excluded, cf. the remark at the end of this paragraph):
-
- nonaccelerated chipsets:
- Tseng ET3000, ET4000AX, ET4000/W32
- Western Digital/Paradise PVGA1
- Western Digital WD90C00, WD90C10, WD90C11, WD90C30
- Genoa GVGA
- Trident TVGA8800CS, TVGA8900B, TVGA8900C, TVGA8900CL, TVGA9000
- ATI 28800-4, 28800-5, 28800-a
- NCR 77C22, 77C22E
- Cirrus Logic GLGD5420, CLGD5422, CLGD5424, CLGD6205, CLGD6215,
- CLGD6225, CLGD6235
- Compaq AVGA (cf the question in the appendix)
- OAK OTI067, OTI077
- accelerated chipsets:
- Cirrus CLGD5426, CLGD5428
- Western Digital WD90C31
-
- NOTE that the WD90C33 chipset does NOT work with XFree86-2.0.
-
- These chipsets are all supported in 256 color (XF86_SVGA) and in
- monochrome mode (XF86_Mono) with the exception of the ATI and Cirrus
- chipsets, which are only supported in 256 color mode. Note that the
- ET4000/W32 is only supported as a ET4000 clone and none of the
- accelerated functions are used.
-
- The monochrome server also supports generic VGA cards (using 64k of the
- video memory as a single bank), the Hercules card and the Hyundai
- HGC-1280. Note that these drivers are not part of the XF86_Mono server
- by default. If you want to use these, you have to reconfigure your
- XF86_Mono server using the LinkKit (or, of course, the source
- distribution - but the LinkKit will need less disk space and less
- compile time). See the Appendix for further information on using a
- Hercules mono card.
-
- There is an (experimental) additional server that works on generic VGA
- hardware: XF86_VGA16, a 16 color server.
-
- XFree86-2.0 supports the following accelerated chipsets with seperate
- servers:
-
- S3 86C911, 86C924, 86C801, 86C805, 86C928 supported by
- the XF86_S3 server
- ATI mach8 supported by the XF86_Mach8 server
- ATI mach32 supported by the XF86_Mach32 server
- IBM 8514/a and true clones supported by the XF86_8514 server
-
- No other chipsets are supported; not Weitek P9000, not TIGA, not
- IIT AGX, not Microfield, not the new MGA chipset (as in the
- Matrox card), etc. Support for some of these will likely be
- provided in future XFree86 releases. TIGA will never be
- supported, as it requires licensing materials from TI (and may
- disallow source distributions); Microfield boards will never be
- supported, as they use proprietary and undocumented custom microcode
- interfaces.
-
-
- NOTE further: The following is a statement of the XFree86 Core Team
- concerning graphic cards by Diamond:
-
- All Diamond cards are NOT supported by XFree86 even if they
- have a supported chipset (with the exception of the Cirrus
- chipsets that have an internal clock generator). The reason
- for this is that Diamond has changed the mechanism used to
- select pixel clock frequencies, and will only release
- programming information under non-disclosure. We are not
- willing to do this (as it would mean that source cannot be
- provided). We have had discussions with Diamond over this,
- and they do not intend to change this policy. Hence we
- will do nothing to support Diamond products going forward
- (i.e. don't send us a program to run set their clocks).
- XFree86 DOES NOT SUPPORT DIAMOND HARDWARE. It is possible
- to make some of it work, but we will not assist in doing
- this.
-
-
- The author of this HOWTO does support this statement completely. If you
- have read this and bought nevertheless a card from Diamond, you will
- damage the idea of free software as Diamond does not support the efforts
- of a free X11 server.
-
- However, if you are stuck with a card from Diamond, there is a
- compilation of the needed things to get XFree86 running on some of these
- cards. It is called the Diamond-FAQ and can be obtained from tsx-11 or
- sunsite in the docs directories.
-
- Do not ask the XFree86 team about Diamond hardware. You will simply
- annoy them, and get no information.
-
- For some of these chipsets there are specific README files (to be found
- in /usr/X386/lib/X11/etc). If there is one for the chipset you use, read
- it!! In these READMEs the specific options that can be used to
- configure the server are explained.
-
- More information on the servers can be found in their manpages.
-
- Later more on configuring the servers.
-
- 2. Where do I get XFree86 and what do I need to run it??
-
- This section is dedicated to the Linux binary distribution so all file
- names and site names are for Linux only. If you read this file and are
- not using Linux, you should get your hands on the announcement of
- XFree86-2.0 for you OS. In it you will find all necessary information on
- obtaining it.
-
- You can get the binary distribution of XFree86-2.0 for Linux via
- anonymous FTP from
- tsx-11.mit.edu:/pub/linux/packages/X11/XFree86-2.0
- or
- sunsite.unc.edu:/pub/Linux/X11/XFree86-2.0
- and all MIRRORS of these two.
-
- You can find an incomplete list of sites mirroring these in the
- BBS-list that gets regularly posted to comp.os.linux.announce or can be
- found on both sites in the docs directory.
-
- The distribution consists of several gzipped tarfiles (some are too big
- to fit on one floppy disk, you may have to split them):
-
- XF86_8514.tar.gz An accelerated server for cards using IBM8514 chips
- XF86_Mach32.tar.gz An accelerated server for cards using Mach32 chips
- XF86_Mach8.tar.gz An accelerated server for cards using Mach8 chips
- XF86_Mono.tar.gz A Monochrome server
- XF86_S3.tar.gz An accelerated server for cards using S3 chips
- XF86_SVGA.tar.gz An SVGA server (most chipsets use this)
- XF86_VGA16.tar.gz A server for 16 colour graphics modes
- xf86-svr-2.0.tar.gz All of the above servers
- xf86-bin-2.0.tar.gz Client programs
- xf86-cfg-2.0.tar.gz XDM configuration files and chooser
- xf86-fnt-2.0.tar.gz Fonts (all of them)
- xf86-kit-2.0.tar.gz Linkkit for building your own X servers
- xf86-lib-2.0.tar.gz Dynamic libraries, bitmaps and minimal fonts
- xf86-man-2.0.tar.gz Manual pages (both client + programmer)
- xf86-pex-2.0.tar.gz PEX libraries and sample clients
- xf86-prg-2.0.tar.gz Static libs, dynamic stubs, configs and
- include files
- xf86-doc-2.0.tar.gz Documentation and release notes for XFree86 2.0
- xf86-doc2-2.0.tar.gz This file contains the manpage for Xconfig that
- has mistakenly been left out of the -doc- file.
-
- You will need libc 4.4.1 or newer to run XFree86-2.0. For the
- accelerated servers you need Linux 0.99pl13 or newer (a working complete
- mmap is needed for these).
-
- The SVGA, VGA16 and Mono servers will work on Linux 0.99pl12 and newer.
- Furthermore you will need to install David Engel's shared dynamic linker
- ld.so version 1.3 or newer. You can find the most recent version on all
- mirrors of tsx-11 in the /pub/linux/packages/GCC directory.
-
- You will need a main memory of at least 8 MB and a virtual memory of at
- least 16 MB (i.e. main memory + swap). It is possible to run X on a 4 MB
- machine if you take some precautions on memory usage (look at section 4,
- where a package for low memory systems is described). Note that you
- should nevertheless have 16 MB of virtual memory. (So if you have 4 megs
- of physical RAM, and 12 megs of swap, you're okay.) It is recommended
- that you have *at least* 8 megs of physical RAM, as swap is very slow.
- With only 4 megs of physical RAM, performance will suffer greatly.
-
- If you want to run memory-hog programs from within X (as e.g. gcc) you
- should at least have 16 MB of main memory and another 16MB of swap.
-
- You will need about 17 MB of disk space for the complete installation
- without LinkKit, 21 MB with LinkKit. By deleting those servers that you
- don't need and removing the LinkKit after linking your own server, you
- can save several MB of diskspace. A more concise listing on the needed
- disk space and the contents of the distribution files can be found in the
- release notes by Simon Cooper. These can be found in the 00README file
- residing in the XFree86-2.0 directory.
-
- Before installing XFree86, you should make a backup of all files that
- you changed. They may not be usable, but they still hold a lot of
- information you might want to preserve. (This includes your old XConfig
- files.)
-
- To install the binary distribution you have to do the following as root
- in the / directory with all needed tarfiles from above. To get all
- permission right you should use umask 022.
-
- gzip -dc tarfilename | tar xvvof -
-
- WARNING: This will overwrite all files from an older XFree86 version, of
- course not the Xconfig file (if you did not link it to Xconfig.sample,
- which you should NOT do). In other words, ionly if Xconfig.sample is
- linked to your Xconfig, it will be overwritten.
-
- After installing it, you will have to set it up correctly to match your
- system. This is described in section 3.
-
- 2.1 What do I do if I want to compile it myself?
-
- This is explained in the INSTALL, README and README.Linux files coming
- with XFree86. You should do that, however, only if you want to have some
- special changes to the standard distribution, as you will need a lot of
- CPU time and disk space to do this. If you only want to change the
- configuration of a server, you should use the Link Kit, as this is much
- easier to handle and will not need that much resources by far.
-
- For adding drivers to the SVGA server you will only need the Link Kit.
- The Link Kit comes with documentation on writing drivers for SVGA. You
- can find it in the directory /usr/X386/lib/Server/VGADriverDoc.
-
- 3. Configuring XFree86
-
- From version 2.0 on all documentation files for XFree86 are combined in
- one tarfile, xf86-doc-2.0.tar.gz. You have to get this file and look
- through those files to configure XFree86 correctly. The following steps
- are intended as a guide to these files.
-
- There is a very good introduction to configuring XFree86 in the
- README.Config coming with XFree86-2.0. Start there to configure XFree86
- and follow the instructions step by step.
-
- Furthermore you MUST read the manpages for Xconfig, XFree86 and the
- server you want to set up (one of XF86_SVGA, XF86_Mono, XF86_VGA16,
- XF86_S3, XF86_Mach8, XF86_Mach32 or XF86_8514). Just look in section 1,
- which server supports the chipset of your graphic card and use this.
-
- If you are not sure, which chipset your graphic card has (this should
- only happen, if you do not have a manual for your card), you can try to
- identify it by running SuperProbe, a graphic hardware detection program
- that comes with XFree86-2.0. You should, however, rely on the
- information of your manuals and not on that of SuperProbe (even if it is
- in most cases correct).
-
- Note that if SuperProbe does not detect your chipset correctly, the
- XFree86 servers will neither. Note further that SuperProbe detects far
- more hardware than XFree86 servers support.
-
- There is a list of accelerated graphic cards that are reported to work
- with XFree86-2.0 in the file AccelCards. Look through it to see, whether
- your card is already in the database. While other boards not listed may
- well work, The XFree86 team gives no assurances of that.
-
- If you were running XS3, you should take a look at README.XS3, as some
- things did change while incorporating the XS3 server into XFree86.
-
- Several people reported problems with the XFree86 configuration that
- could be solved by changing the BIOS configuration of shadowing and
- cacheable areas. The reports which settings had to be changed in order
- to get XFree86 working were partly contradicting, though.
- Due to this fact, I only want to mention that there might be problems
- arising from BIOS setup. If you cannot get it working in spite of
- having followed all hints in the documentation, you might want to
- fiddle with these settings.
-
- For configuring you will need the following information on your system:
-
- 1. The specifications of your monitor (i.e. which vertical and horizontal
- frequences can it handle and which video bandwidth has it). This is
- the most important thing of all as you can toast your monitor using
- incorrect video modes and you will need these specifications to check
- the modes.
- 2. You need the name of the chipset (confer the remarks above). Note
- that there are some companies using "s3" as a synonym for "accelerated"
- chipset, so this is often not true. Please check it out in your
- manuals.
- 3. Amount of video memory supplied by your card (this is usually detected
- Correctly, but it is better to have the exact number and compare it
- with the detected)
- 4. Which dot-clocks are available for your card, or is your dot-clock
- programmable. This is the hardest part for the graphic card setup.
- How to obtain these is described in the README.config.
- NOTE: there is a problem with the clock probing code for the
- WD90C3x chipsets. Please run the XFree86-1.3 server to probe
- for the clocks and put these into your Xconfig file. Having
- done that, you can use the XFree86-2.0 server.
- NOTE: If your RAMDAC can handle pixel clocks higher than 110MHz,
- it is probably one of the more recent high-end RAMDACs. As
- all of these (as far as it is known) use special features to
- make this possible, these RAMDACs should not be run at higher
- clocks than 85 MHz. Support for such RAMDACs (at least for
- some of them) will be in the next release of XFree86. If you
- drive your RAMDAC too high with the current code, you will fry
- it. So if you have such a card, do not use clocks higher than
- 85MHz (simply by not putting modes using clocks higher than
- that into the Xconfig file).
- 5. The protocol your mouse uses and the device it is connected to. The
- available mouse protocols are listed in the Xconfig manpage. You
- have to use the keyword according to the protocol your mouse uses
- and not the manufacturer,... The standard names of the mouse
- devices for Linux are:
- /dev/atibm for the ATI XL busmouse (NOTE: the ATI GU busmouse
- is in fact a logitech busmouse)
- /dev/logibm for the Logitech busmouse (NOTE: this uses the
- busmouse protocol, NOT the Logitech protocol)
- /dev/inportbm for the microsoft busmouse
- /dev/psaux for a ps/2 or quickport mouse
- NOTE: these are the new device names (as of MAKEDEV 1.2). Some
- distributions and systems have different device names:
- new old major minor device number
- atibm: bmouseatixl 10 3
- logibm: bmouselogitec 10 0
- inportbm: bmousems 10 2
- psaux: bmouseps2 or ps2aux 10 1
- The other supported mice are serial mice and therefore connected
- to one of the serial ports (named /dev/ttyS? or /dev/ttyS?? for Linux).
-
- For busmice it is sometimes not easy to see which device they are using.
- Simply put all drivers for busmice into the kernel you use and look
- at the startup messages. These will tell you, which busmouse has been
- detected. From these messages you can get the device name.
-
- So now procede as in README.Config. If your Monitor is not listed in the
- modeDB.txt file, you should try one of the generic modes. ENSURE THAT
- THE SPECS OF THE MODES ARE WITHIN THE SPECS OF YOUR MONITOR. If you
- want to tune these modes or to compute a mode of your own, you MUST read
- VideoModes.doc and follow the instructions there. Before trying a mode,
- compute the specs of this mode and again look if your monitor does
- support it. Here is no further description of computing VideoModes,
- as you should not do this without having read VideoModes.doc.
-
- WARNING: Do NOT EVER share Xconfig files with people who do not have
- EXACTLY the same Configuration (i.e. graphic card AND monitor). By
- doing this you could toast your monitor. It isn't so hard to
- figure out modes (that is, for multisync monitors) and you surely
- shouldn't ever use a mode that you didn't check by yourself to be
- within your monitor's specs. Even if you have exactly the same
- setup you should check all modes yourself before trying
- them. There are many people who run their hardware out of specs
- which may not damage their hardware but could yours.
-
-
- 3.1 Configuring the keyboard for non-US-layout
-
- If you do not change the standard settings, the server will start up
- with an US-american keyboard layout regardless which keyboard layout was
- configured for the kernel. If you want to have a different layout, look
- at the xmodmap(1) manpage. There are example Xmodmaps available at
- sunsite.unc.edu:/pub/Linux/X11/misc for several languages and keyboard
- layouts.
- Note that you might need to define a map for several special keys (as
- e. g. Meta, Compose, ..) in the Xconfig file to make complete use of
- these keymaps. For information on the keyboard capabilities of
- XFree86 read the XFree86kbd(1) manpage. Furthermore you should
-
- 4. tinyX - a XFree86 based package for low memory systems
-
- If you have not enough memory to run the stock XFree86 distribution, you
- might try to get this package. It is based on XFree86, so the difficult
- parts of the configuration (setting up the Xconfig file) are
- identical. To run it you need at least 4 MB RAM and another 8 MB swap
- space. There are now several tinyX versions, one for each of the
- different servers supplied by XFree86-2.0. Please read the above
- description of the servers to get the right version of tinyX. These
- packages are named like
-
- tinyX-YYY-2.0.tar.gz, where YYY denotes the server name (without
- leading XF86_)
-
- You can find tinyX on sunsite.unc.edu in the /pub/Linux/X11 hierarchy.
- Please look in your neighbourhood for a Mirror of it (cf. the BBS-list
- that can be found on most linux sites). You untar it as root from
- /. After this you have to setup a Xconfig file as described in section
- 3. The documentation and READMEs for tinyX as well as most of the
- XFree86-2.0 documentation files can be found in /readmes. Read the
- XFree86 documentation files _before_ setting up a Xconfig file as they
- are required for this.
-
- The tinyX documentation includes a lot of useful information on memory
- saving techniques. You should follow at least some of these suggestions,
- as running X while swapping constantly is no fun at all :-(. If you are
- running out of memory your system will lock up completely (in many cases
- the only way out is to turn off power or to make a hard reset - both is
- very dangerous for your filesystem). So read these files before starting
- X so that this does not happen.
-
- As tinyX does not include all documentation available with XFree86-2.0,
- you might notice that you are pointed to a file that is not included.
- In this case you must get the rest of the documentation files (and
- perhaps the manpages, too) from any XFree86-2.0 site (cf. 2.). If you
- have enough disk space for that, this is highly recommended anyway.
-
- Note that XFree86 specific manpages (as the Server manpages,...)
- are not in the *-man-* but in the *-doc* files.
-
-
- 5. X - related packages
-
- There are a lot of packages that are related to X. I mention two here,
- because they have a great influence on the look-and-feel of X.
-
- - The xview3L5.1.tar.gz package
-
- This package is a port of SUN(TM)'s xview3.2 package by Kenneth
- Osterberg to Linux. It includes the xview toolkit, a set of extensions
- to X. It will give you the look-and-feel of the Open Look(TM)
- extension to X (many will know that from Open Windows(TM) from SUN).
-
- To install it, untar the tarfile as root in some directory (e.g.
- /usr/src), read the documentation that comes with it (most important
- the README and run the INSTALL script. Note that you need about 25MB
- free disk space to install it completely (with examples). This is
- partly due to the fact, that for some time all files are twice on the
- disk. After running the INSTALL script and removing the xview3L5.1
- directory you will need about 11 MB (including all examples). If you
- do not want to install the examples , you will need about 9 MB. If you
- do not want to compile or program any program that uses xview, you can
- spare another 2.5 MB.
-
- For running Xview you will need at least 8 MB of RAM, better 16 MB. To
- run xview with XFree86-2.0 you should get the ld.so package version
- 1.3 or newer.
-
- - There is a port of Motif(TM) to Linux.
-
- This is commercial software, so you will have to pay for it. You can
- find an advertisement from Metrolink (the company that provided the
- port to Linux) on tsx-11:/pub/linux/advertisements.
-
- These packages provide different window managers than the standard twm
- that comes with XFree86. There are several further window managers that
- you can find on sunsite:/pub/Linux/X11/Window-managers. All these use
- different setups, so you have to read the documentation on the window
- managers to set them up correctly.
-
- There are a lot of programs available for X. Look through the
- /pub/Linux/X11 hierarchy at sunsite.unc.edu or at the usr.X11
- directories of /pub/linux/binaries and /pub/linux/sources at
- tsx-11.mit.edu for many of them.
-
-
- 6. Compiling Programs that use X
-
- If you have the source code for a program that uses X11, usually it will
- be shipped with an Imakefile instead of a Makefile. What to do now?
-
- Run "xmkmf" in the directory that containes the Imakefile. If there is a
- hierarchy of directories with Imakefiles, you usually only have to run
- xmkmf in the root directory of that hierachy. You can configure the rest
- by typing make Makefiles. This will build the Makefiles in all
- directories in the hierachy. Then you should run "make depend". Don't be
- afraid if include files like stddef.h, varargs.h, ... are not found,
- they are gcc proprietary header files and therefore not in the standard
- include directories (the Imakefiles use makedepend, not gcc -M). After
- that you can make the program by running make and you can install it
- (usually in /usr/X386/bin) by running "make install", installing of the
- manpages is done by running make "install.man". Of course, before even
- making xmkmf, you should have read the documentation that comes usually
- with such packages.
-
-
- 7. Programming in X
-
- If you want to write programs that use the X Window System, you should
- get some books on the X Window System. Most Subroutines provided by X
- are documented in a manpage (residing in /usr/X386/man/man3), but these
- will not provide enough information on programming in X if you do not
- know some generals about X.
-
- There is a rather complete series on X by O'Reilly, called "The
- definitive Guides to the X Window System", consisting of many volumes
- (you will probably not need all of them). For more information check out
- the O'Reilly and Associates Catalog from anonymous FTP on ftp.ora.com.
- I suggest reading Volume 1, "Xlib Programming Manual", and Volume 4, "X
- Toolkit Intrinsics Programming Manual", if you are serious about writing
- X apps. As it turns out Xt (volume 4) is used for most X applications,
- and you only need low-level Xlib stuff (volume 1) for certain things.
-
- 8. Finding information on X on the net.
-
- For general X questions you should read the FAQ and the Xt-FAQ from the
- comp.windows.x newsgroup (you can achieve them
- from ftp.x.org in the directory /contrib or
- from rtfm.mit.edu in /pub/usenet_by_hierarchy/comp/windows/x
- by anonymous ftp).
- This is the newsgroup for general X questions.
-
- If you have questions on the XFree86 package and cannot find an answer
- in the documentation files (XFree86, Xconfig, XF86_* manpages or the
- README files in /usr/X386/lib/X11/etc) you may want to post a question
- to a newsgroup. The appropriate newsgroup for that purpose is
- comp.windows.x.i386unix, as this newsgroup is dedicated to the XFree86
- system. If you have a problem with the server and want to post a
- question to this newsgroup, you should provide enough information for
- those that want to help you. It is no good idea telling: XFree86 is not
- working, what do I have to do? Here some things that should be included
- in all postings that are concerned with server problems:
-
- - which Operating System and which release of it are you running
- - which hardware do you have (at least bus type (ISA/EISA/VLB), graphic
- card (including chipset, video RAM type (D/VRAM), size and speed))
- - a concise decription of the problem
- - a printout of the server startup (you can generate that by
- redirecting the stderr output)
- - the used parts of the Xconfig (It is NOT a good idea to include all
- lines commented out by a leading #, as this then will be the largest
- part of your post and most people will already know the copyright
- statements :-)
-
- Furthermore you should say what steps of trouble-shooting you already
- did (there are some mentioned in the XFree86 documentation files and in
- the Appendix).
-
- There are some other newsgroups that cover X related topics:
- comp.windows.x.apps - for X applications
- comp.windows.x.intrinsics - for X intrinsic
- comp.windows.x.motif - for the Motif(TM) extension to X
- comp.windows.open-look - for OpenLook(TM) and the xview extensions to X
-
- Note that some of these groups have FAQ lists that are posted regularly
- to the groups. As always with regular postings these can be obtained
- from rtfm.mit.edu via anonymous ftp.
-
- Please do not post X related questions to _any_ newsgroup of the
- comp.os.linux.* hierarchy. You will get better answers to your questions
- in those newsgroups dedicated to those questions, as nearly all those
- questions are not linux-specific.
-
- Appendix: Some Questions & Answers
-
- Q: I started X by running 'X'. I get the stippled background, but no window
- at all. What am I doing wrong?
- A: Running X starts only the server, no window-manager and no applications.
- The usual way to start X is running 'startx'.
-
- Q: I used XS3 up to now, what changed in XFree86-2.0
- A: The most important things that changed, are described in the README.XS3
- file coming with XFree86-2.0.
-
- Q: Is there support for 16-bit or 24-bit colour modes?
- A: No, there is only support for 1-bit, 4-bit and 8-bit colour in the moment.
- The 4-bit server is in addition in an experimental stage, so there
- are bugs and problems using it. Most of the known problems are
- mentioned in the manpage.
-
- Q: I have a Logitech serial mouse but it does not work with the Logitech
- keyword.
- A: The Logitech keyword is for older Logitech serial mice, more recent
- Logitech serial mice use the MouseMan or MicroSoft keyword.
- Logitech serial mice plugged into a ps/2 port use the ps/2 keyword.
-
- Q: My server is unable to find some of the fonts.
- A: First check that the directories in the font path in
- /usr/X386/lib/X11/Xconfig are named correctly and contain fonts. If that
- is the case, running mkfontdir in all of those directories may help you.
-
- Q: I have the problem that the fonts are not restored correctly after
- leaving X. My screen looks totally garbled.
- A: This is not yet completely resolved. There are utilities called
- runx , restoretext,... coming with svgalib (sunsite:/pub/Linux/libs)
- that help sometimes.
-
- Q: I had a normal SVGA card up to now with 1 MB of video RAM. With it
- I could do a virtual resolution of 1152x900 or 1024x1024. Why does
- it not work on my new s3 card?
- A: All but the most recent revisions of the s3 chips cannot use a line
- length of 1152, so a length of 1280 is used for this resolution.
- Furthermore the s3 server needs 1k for the cursor, so a virtual
- resolution using 1MB will not work.
- NOTE, that you will need some memory on the graphics card for font
- and pixmap caching if you want to get maximum performance from your
- graphic card. So the memory is NOT wasted, but will get you a great
- performance boost. Try running some font or pixmap specific
- mode of x11perf with maximal allowed virtual resolution (e.g.
- 1024x1023) and with 1024x768 and compare the results!
- Recommended resolutions are 1024x768 and 1152x800 for 1MB cards.
- The latter resolution leaves not too much memory to the font cache,
- so you will have a performance loss using large fonts.
- For normal use with fonts <= 18 points it should be OK, though.
-
- Q: I have a s3 card and it does not work properly. The screen gets
- distorted when dragging windows and it frequently locks up.
- A: First try to use options nomemaccess or nolinear. If both does not help
- and you have a s3 928, try specifying chipset s3_generic in your
- Xconfig. If nothing helps, it might be a incompatibility
- problem between your graphic card and your motherboard. Try to see if the
- card works in a different system, if you can get your hands.
-
- Q: I have a s3 Localbus card and the server cannot find a high memory
- area. Then it disables direct memory access. What should i do?
- A: There are some strange problems with Localbus cards. It is being worked
- upon. Put option "nolinear" _and_ option "memaccess" into your Xconfig
- file. This will enable to use the 64k aperture that is supported
- even for ISA cards. This will furthermore prevent the following problem:
- Due to a bug in the linear frame buffer code, the s3 processor is
- not reset correctly, once a large (i.e. >= 1024k) linear frame buffer
- is found. Thus the server will not work after that if it fails to
- find the high memory area until a hard reset is sent to the chip (i.e.
- even a normal reboot will not reset the system).
-
- Q: I have a WD90C3x based graphic card. XFree86 seems not to probe the
- clocks correctly. What can I do?
- A: Yup, there is a bug in the clock probing code in XFree86-2.0. It is
- not in XFree86-1.3. So run the XF86_SVGA server from 1.3 just to probe
- the clocks and put the probed clocks into your Xconfig file. After that
- the XF86_SVGA server from 2.0 will get the right clocks. The XFree86-1.3
- package can still be found on tsx-11 and sunsite.
-
- Q: I have a Diamond Viper card. Why does it not work?
- A: In addition to being a Diamond product, this card is based on the
- P9000 chip by Weitek. This chip is not yet supported by XFree86, so
- you have only a chance to get it working with one of the generic
- servers (i.e. Mono or VGA16). You will have nevertheless the clock
- setting problem that prevents the other diamond cards from working.
-
- Q: I have a card with the Compaq AVGA chip. It does not work.
- A: Yes, the AVGA support seems to be completely broken in 2.0. Please
- get the SVGA server from the XFree86-1.3 distribution. This should
- work.
-
- Q: Are there some notes on tuning the performance of my X system?
- A: Yes there are. They are posted monthly to the comp.windows.x
- newsgroup and can also be found on rtfm.mit.edu in the
- appropriate subdirectory.
-
- Q: I want to reconfigure my XF86_S3 or XF86_VGA16 server using the LinkKit.
- After editing sited.def and running mkmf, make will not work.
- A: There is a little bug in the Imakefile for the LinkKit. You can either
- change the line 326 in the Imakefile from
- #if XF86SVGAServer || XF86MonoServer
- to
- #if XF86SVGAServer || XF86MonoServer || XF86VGA16Server || XF86S3Server
- or you can configure the XF86_Mono or XF86_SVGA server additionally for
- building. Then all will work.
-
- Q: I have a SPEA/Video 7 Mercury card. It is 928 based but I cannot
- get it working correctly.
- A: The Mercury uses a clock chip that is not yet supported by XFree86.
- So you cannot use it at the moment. This will (probably) be solved in
- the next XFree86 release.
-
- Q: I have a busmouse and am running selection. The server has problems with
- recognizing the mouse.
- A: Selection has some problems with busmice. XFree86 cannot open the mouse
- device if selection is running on it. So kill selection before staring
- XFree86.
-
- Q: The server dies with the message "Cannot find a free VT".
- A: XFree86 needs a free VT to run on. So if you have put a getty process on
- every virtual console in you /etc/inittab, XFree86 will not be able
- to start. I suggest to let /dev/tty8 (for kernel messages) and /dev/tty7
- (for XFree86) free of a getty process.
-
- Q: Why is the XF86_Mono server not working with my hercules card, I
- thought this card was supported?
- A: The hercules driver (as well as the BDM2 driver) is not part of
- XF86_Mono by default. Get the LinkKit and you can include it.
- You will need about 4 MB free disk space and about 5 minutes for
- building the server (on a 486/30).
- No version of XFree86 up to at least 2.0 properly sets a Hercules
- mono display when switching to text mode (such as when you switch
- VTs or exit from XFree86). You will therefore also want to make a
- small change to the Linux kernel to work around this problem. If
- you have a kernel version 0.99.15 or later, you can edit the file
- "console.c" in the kernel source directory "linux/drivers/char/"
- by adding the line:
- #define CONFIG_HGA
- near the top of the file. Alternatively, you can add the line:
- bool 'Hercules monochrome display support' CONFIG_HGA y
- to "linux/config.in" (then do a 'make config'). Re-make the kernel,
- install it, and re-boot.
- This change to the kernel ensures that the Hercules display is always
- in text mode immediately after a VT switch. This feature is worth
- having, even if future versions of XFree86 do not have the text-mode
- switching problem.
-
- Q: I cannot get a working 1280x1024 interlaced mode on my S3 card.
- A: Yes, that's true. It does not work in the moment. Read README.late
- to fix it.
-
- Q: I have severe problems with getting a mode on my new (805 rev. D or
- 928 rev. E) S3 graphic card with pixel clocks higher than 65MHz.
- A: There seems to be a problem with some undocumented S3 registers
- that come with these new chips. It is worked upon and should be
- fixed in the next release.
-
- Q: When will be the next XFree86 release?
- A: This cannot be said at the moment. If a new version is released,
- you will hear early enough of it.
-
- Q: The server tells me that I cannot use a higher clock frequency
- than 80 MHZ (ATI Mach32) or 85MHz (S3 928). The docs of the card tell me
- that it is possible to do far more.
- A: This comes from problems with the RAMDAC code that does not support
- some RAMDACs completely yet. These are the RAMDACs for the ATI Mach32
- cards and the Bt485 and its clones for S3 cards. Therefore the pixel
- clock gets restricted to sane settings. This will be fixed in the next
- release.
- There are other High-End RAMDACs that suffer from the same restriction.
- In general you should not use any clock higher than 85MHz if your
- RAMDAC can handle pixel clocks higher than 110MHz.
-
- There are a lot strange phenomena reported that cannot be handeled here.
- If your card has a switch for bus waitstates, it helps in many cases
- to put this to the 1WS setting. You should also look at the remarks
- above on setting some BIOS values. As many reports (especially on BIOS
- setting) are contradicting, you should try several settings.
-
- ------------------------- Copying conditions ---------------------------------
-
- Copyright Helmut Geyer 1994
-
- A verbatim copy of the XFree86-HOWTO may be reproduced and distributed in
- any medium physical or electronic without permission of the author.
- Translations works are similarly permitted without express permission if it
- includes a notice on who translated it. Commercial redistribution is allowed
- and encouraged; however, the author would like to be notified of any such
- distributions.
-
- Short quotes may be used without prior consent by the author. Derivative work
- and partial distributions of this HOWTO have to either include a verbatim
- copy of this file or make a verbatim copy of this file available. If the
- latter is the case, a pointer to the verbatim copy must be stated at a
- clearly visible place. If you want to do either of the last possibilities,
- you should contact the author.
-
- In short, we wish to promote dissemination of this information through as
- many channels as possible. However, we do wish to retain copyright on the
- HOWTO documents, and would like to be notified of any plans to redistribute
- the HOWTOs. We further want that ALL information provided in the HOWTOs is
- disseminated. If you have questions, please contact Matt Welsh, the Linux
- HOWTO coordinator, at mdw@sunsite.unc.edu, or +1 607 256 7372.
-
- --------------- Trademarks -------------------
-
- XFree86 is a trademark of The XFree86 Project, Inc.
- Motif is a trademark of the Open Software Foundation.
- SUN and Open Windows is a trademark od SUN Microsystems.
- Open Look is a trademark of AT&T.
-
- ------------------------------------------------------------------------------
- Helmut Geyer geyer@kalliope.iwr.uni-heidelberg.de
-
-
-
-